//============================================================================
// Name        : mros-v42.cpp
// Author      : Marcin Abram
// Version     : 4.2
// Copyright   : GNU
// Description : model tJU, 2 Deltas, 2 hoping parameters
//============================================================================

// BASIC LIBLARIES
#include<cstdlib>
#include<cstdio>
#include<iostream>
// MY HEADERS
#include "mros-v42.h"
#include "rootGSL.h"
#include "case_1D1t_GA.h"
#include "case_1D1t_GA_m0.h"
//#include "case_1D1t_SGA.h"
#include "case_1D1t_SGA_v2.h"
#include "case_2D2t_SGA_tPrim0.h"
//#include "case_1D1t_SGA_l0.h"
#include "case_2D3t_SGA.h"
#include "case_2D2t_SGA_fast.h"
#include "case_PAM_sW_mC.h"
#include "case_PAM_sW_m.h"
//#include "case_PAM_s1.h"
#include "case_PAM_s1_v2.h"
#include "case_PAM_s1_v2_g67.h"
#include "case_PAM_s1_h0_mu.h"
#include "case_PAM_Vtg.h"
// BF
#include "case_BF_sW.h"
#include "case_test.h"

using namespace std;

int main() {
	srand (unsigned(NULL));

	//cout << "# mros-v42 - rozwazam model t-t'-t''-J-U (SGA, 2 delta, 3 chi)" << endl;


//	case_test::example();

//	case_1D1t_GA::example_inf();
//	case_1D1t_GA::example_1D();
//	case_1D1t_GA::example_2D();
//	case_1D1t_GA::test_energy();
//	case_1D1t_GA::run_1D_n();
//	case_1D1t_GA::run_1D_U();
//	case_1D1t_GA::test_L();

//	case_1D1t_GA_m0::example_inf();
//	case_1D1t_GA_m0::example_1D();
//	case_1D1t_GA_m0::run_1D_n();

//	case_1D1t_SGA::test_energy();
//	case_1D1t_SGA::example_inf();

//	case_1D1t_SGA_v2::example();
//	case_1D1t_SGA_v2::example_inf();
//	case_1D1t_SGA_v2::example_1D();
//	case_1D1t_SGA_v2::example_2D();
//	case_1D1t_SGA_v2::test_energy();
//	case_1D1t_SGA_v2::test_L();
//	case_1D1t_SGA_v2::run_1D_n();
//	case_1D1t_SGA_v2::run_1D_U();

//	case_2D2t_SGA_tPrim0::example();
//	case_2D2t_SGA_tPrim0::example_inf();
	//case_2D2t_SGA_tPrim0::example_1D();
//	case_2D2t_SGA_tPrim0::example_2D();
//	case_2D2t_SGA_tPrim0::run_optimal_doping();
////	case_2D2t_SGA_tPrim0::run_1D_n();
//	case_2D2t_SGA_tPrim0::run_1D_U();
//	case_2D2t_SGA_tPrim0::run_1D_J();
//	case_2D2t_SGA_tPrim0::test_L();

//	case_1D1t_SGA_l0::run_1D_n();

//	case_2D2t_SGA::example();
//	case_2D2t_SGA::example_inf();
//	case_2D2t_SGA::test_energy();
//	case_2D2t_SGA::example_1D();
//	case_2D2t_SGA::example_2D();
//	case_2D2t_SGA::test_L();

//	case_2D2t_SGA_tPrim0::test_energy();


//	case_2D3t_SGA::example();
////	case_2D3t_SGA::example_inf();
//	case_2D3t_SGA::example_1D();
//	case_2D3t_SGA::example_2D();

	//case_2D3t_SGA::example();


	// FAST ---> for ACTA
	//case_2D2t_SGA_fast::example();
	//case_2D2t_SGA_fast::plot2D();
	//case_2D2t_SGA_fast::inf();
//	case_2D2t_SGA_fast::plot1D();

	//case_PAM_sW_mC::example();
	//case_PAM_sW_mC::example_inf();

	//case_PAM_sW_m::example();
	//case_PAM_sW_m::example_inf();
	//case_PAM_sW_m::run_1D();

	//case_PAM_s1::example();
	//case_PAM_s1::example_inf();
	//case_PAM_s1::run_1D_n();
	//case_PAM_s1::run_1D_V();
	//case_PAM_s1::run_1D_epsilonF();
	//case_PAM_s1::run_1D_U();
	//case_PAM_s1::run_1D_h();
	//case_PAM_s1::run_1D_tPrim();


	//case_PAM_s1_v2::example_inf();
	//case_PAM_s1_v2::run_2D();
	//case_PAM_s1_v2::run_1D_a(); //HM
	//case_PAM_s1_v2::run_1D_b(); //PM
	//case_PAM_s1_v2::run_1D_c(); //test
	//case_PAM_s1_v2::run_1D_d(); // hV

	//case_PAM_s1_v2_g67::example_inf(); // hV
	//case_PAM_s1_v2_g67::run_1D_d(); // hV

	//case_PAM_s1_h0_mu::example_inf();
	//case_PAM_s1_h0_mu::run_1D();

	// ZAKOPANE14
	//case_2D2t_SGA_fast::plot1D();
////	case_2D3t_SGA::example_1D_v2();
	//case_PAM_s1_v2::run_1D_d();


	//case_PAM_Vtg::example();
	//case_PAM_Vtg::example_inf();
	//case_PAM_Vtg::run_1D();
	//case_PAM_Vtg::run_2D();
	//case_PAM_s1_v2::example();
	//case_PAM_Vtg::run_Belitz();
	//case_PAM_Vtg::run_Belitz_automatic();
	//case_PAM_Vtg::run_Belitz_2ways();
	//case_PAM_Vtg::run_Belitz_automatic2D();

//	case_PAM_Vtg::run_Belitz_2ways_v2();

	//case_PAM_Vtg::run_2D_VandVint();
	//case_PAM_Vtg::run_2D_hV();
	//case_PAM_Vtg::run_2D_realistic();

	case_BF_sW::example_inf();

	return 0;
}




